package cn.hinglo.common.interceptors.base;

import cn.hinglo.common.config.error.ErrorConstant;
import cn.hinglo.common.config.error.SelfErrorRender;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;

/**
 * @createTime: 2018/6/5
 * @author: HingLo
 * @description: 请求方式拦截器的基类
 */
abstract public class BaseRequestMethodInterceptor implements Interceptor {

    @Override
    public void intercept(Invocation inv) {
        Controller controller = inv.getController();
        if (defaultMethod().equalsIgnoreCase(controller.getRequest().getMethod())) {
            inv.invoke();
        } else {
            SelfErrorRender.errorRender(ErrorConstant.ERROR405, inv.getController());
        }
    }

    /***
     * 子类需要实现的方式
     * @return 返回请求的方式
     */
    protected abstract String defaultMethod();

}
